import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.ReentrantLock;

public class Test {
    public static void main(String[] args) throws InterruptedException {
        ReentrantLock lock = new ReentrantLock();

        // 定义很多个休眠与唤醒条件
        // 条件1
        Condition male = lock.newCondition();
        // 条件2
        Condition female = lock.newCondition();//

        // 根据不同的条件进行阻塞等待
        male.await();
        // 根据不同的条件进行唤醒
        male.signal();      // 唤醒相应队列中的一个线程
        male.signalAll();   // 唤醒相应队列中的所有线程

        // 根据不同的条件进行阻塞等待
        female.await();
        // 根据不同的条件进行唤醒
        female.signal();
        female.signalAll();
    }
}
